import { ua } from './utils/ua'
import { http } from './utils/http'
import { storage, cookie, session } from './utils/storage'
import base64 from 'base-64'

// 公共方法
export const mixin = {
  // 浏览器参数
  ...ua,
  // axios请求 post,get,put,delete 
  ...http,
  // 路由跳转
  jump(path) { if(path.indexOf('http')>-1){ window.location.href = path; return } this.$router.push(path) },
  // 路由返回
  back() { this.$router.back() },
  // 设置localStorage数据
  setData(key, value) { storage.set(key, value) },
  // 获取localStorage数据
  getData(key) { return storage.get(key) },
  // 设置sessionStorage数据
  setSession(key) { session.set(key, value) },
  // 获取sessionStorage数据
  getSession(key) { session.get(key) },
  // 设置cookie数据
  setCookie(key, value, day) { cookie.set(key, value, day) },
  // 获取cookie数据
  getCookie(key) { return cookie.get(key) },
  // base64加密
  enBase64(input) { return base64.encode(input) },
  // base64解密
  deBase64(input) { return base64.decode(input) },
}

// dsbridge
const bridge = require("dsbridge")

// App交互bridge交互方法，安卓和ios同方法
export const app = {
  // 跳转原生页面
  jump(url) {
    bridge.call('jump', url)
  },
  // 关闭当前页面
  finish() {
    bridge.call('finish')
  },
  // 获取当前用户UserId
  getUserId() {
    return bridge.call('getUserId')
  },
  // 获取App的token
  getAppToken() {
    return bridge.call('getAppToken')
  },
  // 获取App包名
  getAppPackageName() {
    return bridge.call('getAppPackagename')
  },
  // 获取App版本
  getAppVersion() {
    return bridge.call('getAppVersion')
  },
  //获取APP版本号
  getAppVersionCode() {
    return bridge.call('getAppVersionCode')
  },
  //获取手机设备信息
  getDeviceInfo() {
    return bridge.call('getDeviceInfo')
  },
}